The invention relates to the field of synchronizing data between a core computer system and one or more devices which may connect to and interact with the core computer system from time to time. As an illustrative example for the purposes of this document, a personal financial management (“PFM”) software system is used as an example. A personal financial management software system can allow a user to view bank account balances and transactions, move money from one account to another, pay bills, conduct personal budgeting, and perform other functions.
In the prior art, a PFM software system stored user data on a core computer system. A user could use another computing device, such as a mobile computing device (“MCD”), to connect to the core computer system and download the user's data. Currently smart phones are popular MCDs. However, tablet computers, laptop computers, and other electronic devices can be used as MCD's. On the MCD the user can review his or her downloaded data. If the MCD remains connected to the core computer system, then the user can also change the data or perform other transactions with the core computer system. But if the user does not remain connected to the core computer system, then the user is limited to reviewing data downloaded to the MCD.
The prior art situation posed several inconvenient problems for the user and for the provider of the core computer system. First, a user who lost connectivity with the core computer system, such as due to loss of internet connection, lost the ability to edit data or conduct transactions. Second, even while editing data or conducting transactions, a user was faced with inherent slowness of the connection to the core computer system or slowness of the core computer system itself. Third, in order to support simultaneous on-line transaction processing for numerous users, both the core computer system and its connectivity for users needed to be very robust and therefore expensive. Also, connections with multiple devices must be managed.